#include "AppDelegate.h"
#include "HelloWorldScene.h"
#include "AppMacros.h"
#include <vector>
#include <string>

using namespace std;

USING_NS_CC;

AppDelegate::AppDelegate() {

}

AppDelegate::~AppDelegate() 
{
}

bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director
    CCDirector* pDirector = CCDirector::sharedDirector();
    CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();

    pDirector->setOpenGLView(pEGLView);
    CCSize frameSize = pEGLView->getFrameSize();
    
	pEGLView->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, kResolutionShowAll);
    
	vector<string> searchPath;
    if (frameSize.height > mediumResource.size.height)
    {
      searchPath.push_back(largeResource.directory);
      //pDirector->setContentScaleFactor(MIN(largeResource.size.height/designResolutionSize.height, largeResource.size.width/designResolutionSize.width));
      
    }
    else
    {
      searchPath.push_back(smallResource.directory);
    }
    //for specific project, set this directory for resources
    searchPath.push_back("thiennguyen");
    
    // set searching path
    CCFileUtils::sharedFileUtils()->setSearchPaths(searchPath);

	//preload sound effects
	//SimpleAudioEngine::sharedEngine()->preloadEffect("hit.wav");
	//SimpleAudioEngine::sharedEngine()->preloadEffect("score.wav");


    // turn on display FPS
    pDirector->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    pDirector->setAnimationInterval(1.0 / 60);

    // create a scene. it's an autorelease object
    CCScene *pScene = HelloWorld::scene();

    // run
    pDirector->runWithScene(pScene);

    return true;
}

// This function will be called when the app is inactive. When comes a phone call,it's be invoked too
void AppDelegate::applicationDidEnterBackground() {
    CCDirector::sharedDirector()->stopAnimation();

    // if you use SimpleAudioEngine, it must be pause
    // SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
}

// this function will be called when the app is active again
void AppDelegate::applicationWillEnterForeground() {
    CCDirector::sharedDirector()->startAnimation();

    // if you use SimpleAudioEngine, it must resume here
    // SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
}
